// 给定一个字符串 s 和一个整数 k，从字符串开头算起，每计数至2k 个字符，就反转这 2k 字符中的前 k 个字符。

// 思路：把字符串转为数组操作，每次循环增加2 * k，在一个循环中完成前k个字符的反转
// 时间复杂度：O(n)，n是字符串的长度
// 空间复杂度：O(n)，arr数组的大小

function reverseStr(str, k) {
    let arr = str.split('')
    for (let i = 0; i < str.length; i += 2 * k) {
        let left = i
        let right = i + k - 1
        while (left < right) {
            [arr[left], arr[right]] = [arr[right], arr[left]];
            left++
            right--
        }
    }
    return arr.join('')
}

s = "abcdefg"
k = 2

console.log(reverseStr(s, k))